home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / WINER.ZIP / CHAP12_2.ASM < prev    next >
Assembly Source File  |  1992-05-13  |  1KB  |  43 lines

  1. ;CHAP12-2.ASM, returns "True" or "False" as a far string
  2.  
  3. ;Copyright (c) 1991 Ethan Winer
  4.  
  5. ;Syntax: Answer$ = TrueFalse$(Argument%)
  6.  
  7. .Model Medium, Basic
  8.   Extrn MakeString:Proc        ;this is in FAR$.ASM
  9.  
  10. .Data
  11.   Descriptor DW 0, 0           ;the output string descriptor
  12.  
  13.   True       DB "True"
  14.   TrueLen = $ - Offset True
  15.  
  16.   False      DB "False"
  17.   FalseLen = $ - Offset False
  18.  
  19. .Code
  20. TrueFalse Proc Uses ES DS SI DI, Argument:Word
  21.  
  22.   Mov  CX,4             ;assume true
  23.   Mov  AX,Offset True
  24.  
  25.   Mov  BX,Argument      ;get the address for Argument%
  26.   Cmp  Word Ptr [BX],0  ;is it zero?
  27.   Jne  @F               ;no, so we were right
  28.  
  29.   Inc  CX               ;yes, assign five characters
  30.   Mov  AX,Offset False  ;and use the address of "False"
  31.  
  32. @@:
  33.   Mov  DX,DS                ;assign segment and address
  34.   Mov  DI,Offset Descriptor ;  of destination descriptor
  35.   Xor  BX,BX                ;assign to a descriptor
  36.   Call MakeString           ;let MakeString do the work
  37.   
  38.   Mov  AX,DI            ;address of output descriptor
  39.   Ret                   ;return to BASIC
  40.  
  41. TrueFalse Endp
  42. End
  43.